/**
 * 路由处理模块（用户信息）
 */
const db = require('../db/index');
const bcryptjs = require('bcryptjs');
// 获取用户信息
function userInfoHandle(req, res) {
  const sqlStr = `select id,username,nickname,user_pic from ev_users where id=?`
  db.query(sqlStr, req.user.id, (err, results) => {
    if (err) return res.cc(err);
    if (results.length !== 1) return res.cc('获取用户信息失败');
    return res.send({
      status: 1,
      msg: '获取用户数据成功',
      data: results[0]
    })
  })
}

// 更新用户基本信息
function updateUserInfo(req, res) {
  let sqlStr = `update ev_users set ? where id=?`;
  db.query(sqlStr, [req.body, req.body.id], (err, results) => {
    if (err) return res.cc(err);
    if (results.affectedRows !== 1) return res.cc(err);
    res.cc('更新用户信息成功', 1)
  })
}
// 用户修改密码
function updatePwd(req, res) {
  let sqlStr = `select * from ev_users where id=?`
  db.query(sqlStr, req.user.id, (err, results) => {
    if (err) return res.cc(err);
    if (results.length !== 1) return res.cc('用户不存在');
    // 判断用户输入的旧密码是否一致
    const compareResult = bcryptjs.compareSync(req.body.oldPwd, results[0].password)
    if (!compareResult) return res.cc('旧密码错误');
    // 更新密码
    let sqlStr = `update ev_users set password=? where id=?`
    // 对新密码进行加密
    let newPwd = bcryptjs.hashSync(req.body.newPwd, 10)
    db.query(sqlStr, [newPwd, req.user.id], (err, results) => {
      if (err) return res.cc(err);
      if (results.affectedRows !== 1) return res.cc('更新密码失败');
      res.cc('更新密码成功', 1)
    })
  })
}

// 更新用户头像
function updateAva(req,res){
  const sqlStr = `update ev_users set user_pic=? where id=?`;

  db.query(sqlStr,[req.body.avatar,req.user.id],(err,results)=>{
    if(err) return res.cc(err);
    if(results.affectedRows!==1) return res.cc('更换头像失败');
    return res.cc('更新头像成功',1)
  })
}



module.exports = {
  userInfoHandle,
  updateUserInfo,
  updatePwd,
  updateAva
}

